package config

import (
	"github.com/hwUltra/fb-tools/gormx"
	"github.com/hwUltra/fb-tools/mq"
	"github.com/hwUltra/fb-tools/uploadx"
	"github.com/zeromicro/go-zero/core/stores/cache"
	"github.com/zeromicro/go-zero/core/stores/redis"
	"github.com/zeromicro/go-zero/rest"
)

type Config struct {
	rest.RestConf
	Auth struct {
		AccessSecret string
		AccessExpire int64
	}
	JwtUserKey string
	Gorm       gormx.Conf
	Redis      redis.RedisConf
	Cache      cache.CacheConf
	OSS        uploadx.OSSConf
	MqClient   mq.ClientConfig
	WebSocket  struct {
		Enable bool
		Path   string
	}
	Salt string
}

//func PullConfig() Config {
//	const (
//		EtcdHost = "192.168.0.112:12379"
//		EtcdKey  = "fb-api-admin"
//	)
//	ss := subscriber.MustNewEtcdSubscriber(subscriber.EtcdConf{
//		Hosts: []string{EtcdHost},
//		Key:   EtcdKey,
//	})
//
//	cc := configurator.MustNewConfigCenter[Config](configurator.Config{
//		Type: "yaml",
//	}, ss)
//
//	// 获取配置
//	v, err := cc.GetConfig()
//	if err != nil {
//		panic(err)
//	}
//	// 监听配置
//	cc.AddListener(func() {
//		v, err := cc.GetConfig()
//		if err != nil {
//			panic(err)
//		}
//		//这个地方要写 触发配置变化后 需要处理的操作
//		println("config changed:", v.Name)
//	})
//
//	return v
//}
